// 打印100以内的质数
function printPrime(n: number) {
  for (let i = 2; i <= n; i++) {
    let flag = true;
    /**
     * 质数被定义为因数只有1和自身的且大于1的整数
     * 假设i有一个大于根号i的因数j，
     * 那么i/j一定能得出另一个小于根号i的因数，
     * 所以只需要检索小于根号i或大于根号i的因数排除掉可优化运行效率，
     * 如果i向j取余得出0，说明当前这个i数存在一个因数j，
     * 就结束对当前i的检查，继续i+1的检索，
     * 对当前i检查过后不存在任何因数时，flag仍为true，
     * 即当前i为质数。
    */
    for (let j = 2; j <= Math.sqrt(i); j++) {
      if (i % j === 0) {
        flag = false;
        break;
      }
    }
    if (flag) {
      console.log(i);
    }
  }
}

printPrime(10);
